package cn.bisoft.java.bean.entity;

import java.io.Serializable;



/**
 * This is an object that contains data related to the AnteFrontFinanceMoneyReport table.
 * Do not modify this class because it will be overwritten if the configuration file
 * related to this class is modified.
 *
 * @hibernate.class
 *  table="AnteFrontFinanceMoneyReport"
 */

public abstract class BaseAnteFrontFinanceMoneyReport  implements Serializable {
	private static final long serialVersionUID = 1L;
	public static String REF = "AnteFrontFinanceMoneyReport";
	public static String PROP_END_TIME = "EndTime";
	public static String PROP_START_TIME = "StartTime";
	public static String PROP_TRANS_MONEY = "TransMoney";
	public static String PROP_FEE_RULE = "FeeRule";
	public static String PROP_TRANS_COUNT = "TransCount";
	public static String PROP_SETTLEMENT_ID = "SettlementId";
	public static String PROP_FEE_MONEY = "FeeMoney";
	public static String PROP_REPORT_ID = "ReportId";
	public static String PROP_REPORT_TYPE = "ReportType";
	public static String PROP_TRANS_TYPE = "TransType";
	public static String PROP_REPORT_TIME = "ReportTime";
	public static String PROP_PROVIDER_ID = "ProviderId";


	// constructors
	public BaseAnteFrontFinanceMoneyReport () {
		initialize();
	}

	/**
	 * Constructor for primary key
	 */
	public BaseAnteFrontFinanceMoneyReport (java.lang.Integer reportId) {
		this.setReportId(reportId);
		initialize();
	}

	/**
	 * Constructor for required fields
	 */
	public BaseAnteFrontFinanceMoneyReport (
		java.lang.Integer reportId,
		java.lang.String providerId,
		java.lang.Integer transType,
		java.lang.Integer reportType,
		java.lang.Long transMoney,
		java.lang.Integer transCount,
		java.lang.Long feeMoney,
		java.lang.String feeRule,
		java.lang.Integer settlementId,
		java.util.Date startTime,
		java.util.Date endTime,
		java.util.Date reportTime) {

		this.setReportId(reportId);
		this.setProviderId(providerId);
		this.setTransType(transType);
		this.setReportType(reportType);
		this.setTransMoney(transMoney);
		this.setTransCount(transCount);
		this.setFeeMoney(feeMoney);
		this.setFeeRule(feeRule);
		this.setSettlementId(settlementId);
		this.setStartTime(startTime);
		this.setEndTime(endTime);
		this.setReportTime(reportTime);
		initialize();
	}

	protected void initialize () {}



	private int hashCode = Integer.MIN_VALUE;

	// primary key
	private java.lang.Integer reportId;

	// fields
	private java.lang.String providerId;
	private java.lang.Integer transType;
	private java.lang.Integer reportType;
	private java.lang.Long transMoney;
	private java.lang.Integer transCount;
	private java.lang.Long feeMoney;
	private java.lang.String feeRule;
	private java.lang.Integer settlementId;
	private java.util.Date startTime;
	private java.util.Date endTime;
	private java.util.Date reportTime;



	/**
	 * Return the unique identifier of this class
     * @hibernate.id
     *  generator-class="native"
     *  column="reportId"
     */
	public java.lang.Integer getReportId () {
		return reportId;
	}

	/**
	 * Set the unique identifier of this class
	 * @param reportId the new ID
	 */
	public void setReportId (java.lang.Integer reportId) {
		this.reportId = reportId;
		this.hashCode = Integer.MIN_VALUE;
	}




	/**
	 * Return the value associated with the column: ProviderId
	 */
	public java.lang.String getProviderId () {
		return providerId;
	}

	/**
	 * Set the value related to the column: ProviderId
	 * @param providerId the ProviderId value
	 */
	public void setProviderId (java.lang.String providerId) {
		this.providerId = providerId;
	}



	/**
	 * Return the value associated with the column: transType
	 */
	public java.lang.Integer getTransType () {
		return transType;
	}

	/**
	 * Set the value related to the column: transType
	 * @param transType the transType value
	 */
	public void setTransType (java.lang.Integer transType) {
		this.transType = transType;
	}



	/**
	 * Return the value associated with the column: reportType
	 */
	public java.lang.Integer getReportType () {
		return reportType;
	}

	/**
	 * Set the value related to the column: reportType
	 * @param reportType the reportType value
	 */
	public void setReportType (java.lang.Integer reportType) {
		this.reportType = reportType;
	}



	/**
	 * Return the value associated with the column: transMoney
	 */
	public java.lang.Long getTransMoney () {
		return transMoney;
	}

	/**
	 * Set the value related to the column: transMoney
	 * @param transMoney the transMoney value
	 */
	public void setTransMoney (java.lang.Long transMoney) {
		this.transMoney = transMoney;
	}



	/**
	 * Return the value associated with the column: transCount
	 */
	public java.lang.Integer getTransCount () {
		return transCount;
	}

	/**
	 * Set the value related to the column: transCount
	 * @param transCount the transCount value
	 */
	public void setTransCount (java.lang.Integer transCount) {
		this.transCount = transCount;
	}



	/**
	 * Return the value associated with the column: FeeMoney
	 */
	public java.lang.Long getFeeMoney () {
		return feeMoney;
	}

	/**
	 * Set the value related to the column: FeeMoney
	 * @param feeMoney the FeeMoney value
	 */
	public void setFeeMoney (java.lang.Long feeMoney) {
		this.feeMoney = feeMoney;
	}



	/**
	 * Return the value associated with the column: FeeRule
	 */
	public java.lang.String getFeeRule () {
		return feeRule;
	}

	/**
	 * Set the value related to the column: FeeRule
	 * @param feeRule the FeeRule value
	 */
	public void setFeeRule (java.lang.String feeRule) {
		this.feeRule = feeRule;
	}



	/**
	 * Return the value associated with the column: settlementId
	 */
	public java.lang.Integer getSettlementId () {
		return settlementId;
	}

	/**
	 * Set the value related to the column: settlementId
	 * @param settlementId the settlementId value
	 */
	public void setSettlementId (java.lang.Integer settlementId) {
		this.settlementId = settlementId;
	}



	/**
	 * Return the value associated with the column: startTime
	 */
	public java.util.Date getStartTime () {
		return startTime;
	}

	/**
	 * Set the value related to the column: startTime
	 * @param startTime the startTime value
	 */
	public void setStartTime (java.util.Date startTime) {
		this.startTime = startTime;
	}



	/**
	 * Return the value associated with the column: endTime
	 */
	public java.util.Date getEndTime () {
		return endTime;
	}

	/**
	 * Set the value related to the column: endTime
	 * @param endTime the endTime value
	 */
	public void setEndTime (java.util.Date endTime) {
		this.endTime = endTime;
	}



	/**
	 * Return the value associated with the column: reportTime
	 */
	public java.util.Date getReportTime () {
		return reportTime;
	}

	/**
	 * Set the value related to the column: reportTime
	 * @param reportTime the reportTime value
	 */
	public void setReportTime (java.util.Date reportTime) {
		this.reportTime = reportTime;
	}




	public boolean equals (Object obj) {
		if (null == obj) return false;
		if (!(obj instanceof AnteFrontFinanceMoneyReport)) return false;
		else {
			AnteFrontFinanceMoneyReport anteFrontFinanceMoneyReport = (AnteFrontFinanceMoneyReport) obj;
			if (null == this.getReportId() || null == anteFrontFinanceMoneyReport.getReportId()) return false;
			else return (this.getReportId().equals(anteFrontFinanceMoneyReport.getReportId()));
		}
	}

	public int hashCode () {
		if (Integer.MIN_VALUE == this.hashCode) {
			if (null == this.getReportId()) return super.hashCode();
			else {
				String hashStr = this.getClass().getName() + ":" + this.getReportId().hashCode();
				this.hashCode = hashStr.hashCode();
			}
		}
		return this.hashCode;
	}


	public String toString () {
		return super.toString();
	}


}